import json
from openai import OpenAI
import requests
import monday_void

# 1. 读取 API 路由表
with open("url.json", "r", encoding="utf-8") as f:
    api_routes = json.load(f)

# 2. 让 AI 解析用户意图
def get_api_from_ai(user_input):
    print("开始调用 AI 。。。。。。。。。。")

    client = OpenAI(api_key="sk-beda48b0f34d454cbefd5bae1838e8f8", base_url="https://api.deepseek.com")

    system_prompt = f"你是一个 API 调度助手，以下是可用的 API:\n{json.dumps(api_routes, indent=2, ensure_ascii=False)}\n请根据用户输入选择最合适的 API，并返回 API 名称（如 'weather' 或 'calculate'），不需要额外文字"

    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": f"用户请求：{user_input}"},
        ],
        stream=False
    )

    print(f"AI 返回的内容:{response}")

    print(f"解析内容:{response.choices[0].message.content}")

    api_name = response.choices[0].message.content.strip()
    return api_name if api_name in api_routes else None

# 3. 调用匹配的 API
def call_api(api_name, params=None):
    if api_name not in api_routes:
        return "找不到合适的 API"

    api_info = api_routes[api_name]
    url = f"http://localhost:8080{api_info['url']}"
    print(f"得到url:{url}")
    method = api_info["method"]
    print(f"得到method:{method}")

    # if method == "GET":
    #     response = requests.get(url, params=params)
    # else:  # 默认 POST
    #     response = requests.post(url, json=params)

    # return response.json()


if __name__ == "__main__":
    # 4. 综合流程：用户输入 → AI 解析 → 调用 API
    user_input = monday_void.recognize_speech()  # 语音识别得到的文本
    if user_input:
        print("返回的最终文本:", user_input)

        api_name = get_api_from_ai(user_input)

        if api_name:
            result = call_api(api_name)
            print("调用接口 返回结果:", result)
        else:
            print("无法匹配合适的 API")
    else:
        print("没有识别文字，不发送AI")


